home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / compuserve-file-archive / 09 Application Software / GC1.SDA / CHECK LOC FILES (.txt) next >
Commodore BASIC  |  2019-04-13  |  3KB  |  126 lines

  1. 10 E1$="LOCATION-NAME LENGTH ERROR"
  2. 20 E2$="OUT OF SEQUENCE"
  3. 30 E3$="LONGITUDE-FIELD LENGTH ERROR"
  4. 40 E4$="ILLEGAL CHARACTERS IN NAME FIELD"
  5. 50 E5$="ILLEGAL CHARACTERS IN LATITUDE FIELD"
  6. 60 E6$="ILLEGAL CHARACTERS IN LONGITUDE FIELD"
  7. 70 E7$="DUPLICATE ENTRY"
  8. 80 E8$="ERROR IN POINTER RECORD"
  9. 90 DN=PEEK(186)
  10. 100 REM -------1 = LENGTH ERROR NAME (1)
  11. 110 REM ------1- = SEQUENCE ERROR (2)
  12. 120 REM -----1-- = NAME NOT LEFT-JUSTIFIED (4)
  13. 130 REM ----1--- = ILLEGAL CHARACTERS NAME (8)
  14. 140 REM ---1---- = ILLEGAL CHARACTERS LATITUDE (16)
  15. 150 REM --1----- = ILLEGAL CHARACTERS LONGITUDE (32)
  16. 160 REM -1------ = DUPLICATION (64)
  17. 170 REM 1------- = ERROR IN POINTER RECORD (128)
  18. 180 PRINT"[147]PUT DISK IN DRIVE"DN
  19. 190 PRINT"  AND PRESS A KEY"
  20. 200 POKE198,0:WAIT198,1
  21. 210 NF$="      "
  22. 220 OPEN15,DN,15,"I0"
  23. 230 OPEN1,4,7:POKE53281,1:POKE53280,7:POKE646,0
  24. 240 PRINT"[147] CHECK LATITUDE/LONGITUDE FILES"
  25. 250 PRINT""
  26. 260 FORI=65TO90
  27. 270 CLOSE8:OPEN8,DN,8,CHR$(I)
  28. 280 RN=1:GOSUB1040:GOSUB1040:GOSUB1120:INPUT#8,MN$:MN=VAL(MN$)
  29. 290 IFMN=1THEN980
  30. 300 RN=MN:GOSUB1040:GOSUB1040:GOSUB1120
  31. 310 IFEN<>50THENINPUT#8,PL$,LA$,LO$
  32. 320 IFEN=50ORPL$>"ZZZ"THENEV=EVOR128:PRINT#1,"FILE: "CHR$(I):GOSUB1160
  33. 330 CS$="":FORRN=2TOMN
  34. 340 GOSUB1040:GOSUB1040:GOSUB1120
  35. 350 EV=0:IFEN=50THENRN=MN:GOTO960
  36. 360 INPUT#8,PL$,LA$,LO$
  37. 370 IFPL$>"Z"THEN960
  38. 380 PRINTPL$"[145]"
  39. 390 :
  40. 400 :
  41. 410 REM ****CHECK NAME FIELD
  42. 420 REM     FOR LENGTH
  43. 430 IFLEN(PL$)<>30THENEV=EV OR 1
  44. 440 IFLEFT$(PL$,1)=" "THEN EV=EV OR 4
  45. 450 FORK=1TOLEN(PL$)
  46. 460 CC$=MID$(PL$,K,1)
  47. 470 IFCC$=" "THEN550
  48. 480 IFCC$>"@"ANDCC$<"["THEN550
  49. 490 IFCC$="-"THEN550
  50. 500 IFCC$="'"THEN550
  51. 510 IFCC$=")"THEN550
  52. 520 IFCC$="("THEN550
  53. 530 IFCC$="."THEN550
  54. 540 EV=EV OR 8
  55. 550 NEXT
  56. 560 :
  57. 570 :
  58. 580 REM ****CHECK LATITUDE FIELD
  59. 590 REM
  60. 600 TV=VAL(LA$)
  61. 610 LA$=STR$(TV)
  62. 620 IFTV=0 OR TV>90 OR TV<-90THEN EV=EV OR 16
  63. 630 FORK=1TOLEN(LA$)
  64. 640 CC$=MID$(LA$,K,1)
  65. 650 IFCC$>"/"ANDCC$<":"THEN710
  66. 660 IFCC$=" "THEN710
  67. 670 IFCC$="-"THEN710
  68. 680 IFCC$="."THEN710
  69. 690 IFCC$="E"THEN710
  70. 700 EV=EV OR 16
  71. 710 NEXT
  72. 720 :
  73. 730 :
  74. 740 REM ****CHECK LONGITUDE FIELD
  75. 750 REM
  76. 760 TV=VAL(LO$):LO$=STR$(TV)
  77. 770 IF TV=0 OR TV>179.9999999 OR TV<-179.999999 THEN EV=EV OR 32
  78. 780 FORK=1TOLEN(LO$)
  79. 790 CC$=MID$(LO$,K,1)
  80. 800 IFCC$>"/"ANDCC$<":"THEN860
  81. 810 IFCC$=" "THEN860
  82. 820 IFCC$="-"THEN860
  83. 830 IFCC$="."THEN860
  84. 840 IFCC$="E"THEN860
  85. 850 EV=EV OR 32
  86. 860 NEXT
  87. 870 :
  88. 880 :
  89. 890 REM ***CHECK FOR DUPLICATIONS OR
  90. 900 REM    SEQUENCE ERRORS
  91. 910 REM
  92. 920 IFPL$=CS$THENEV= EV OR 64
  93. 930 IFPL$<CS$THENEV= EV OR 2
  94. 940 IFEV<>0THENGOSUB1160
  95. 950 CS$=PL$
  96. 960 NEXT
  97. 970 CLOSE8
  98. 980 NEXT
  99. 990 PRINT"                                 "
  100. 1000 FORI=1TO15:CLOSEI:NEXT:POKE186,8:LOAD"MENU",DN
  101. 1010 :
  102. 1020 :
  103. 1030 REM\     POSITION & ERROR SUB
  104. 1040 RH=INT(RN/256):RL=RN-(256*RH)
  105. 1050 PRINT#15,"P"+CHR$(96+8)+CHR$(RL)+CHR$(RH)+CHR$(1)
  106. 1060 INPUT#15,EN,EM$,ET,ES
  107. 1070 IF EN=0OREN=50THENRETURN
  108. 1080 PRINTEN;EM$;ET;ES
  109. 1090 CLOSE8:CLOSE15:STOP
  110. 1100 :
  111. 1110 :
  112. 1120 IFPEEK(52)<PEEK(50)+3THENYY=FRE(0)
  113. 1130 RETURN
  114. 1140 :
  115. 1150 :
  116. 1160 PRINT#1,PL$:PRINT"ERROR: "PL$"[144]"
  117. 1170 IF(EV AND 1)<>0THENPRINT#1,NF$E1$
  118. 1180 IF(EV AND 2)<>0THENPRINT#1,NF$E2$
  119. 1190 IF(EV AND 4)<>0THENPRINT#1,NF$E3$
  120. 1200 IF(EV AND 8)<>0THENPRINT#1,NF$E4$
  121. 1210 IF(EV AND 16)<>0THENPRINT#1,NF$E5$
  122. 1220 IF(EV AND 32)<>0THENPRINT#1,NF$E6$
  123. 1230 IF(EV AND 64)<>0THENPRINT#1,NF$E7$
  124. 1240 IF(EV AND 128)<>0THENPRINT#1,NF$E8$
  125. 1250 RETURN
  126.